if (strfield(mov_url,"ftp://")) { // ftp, ok on arrΩte
has_been_moved = 1;
back_maydelete(opt,cache,back,b); // ok
strcpybuff(curr_adr,mov_adr);
strcpybuff(curr_fil,mov_fil);
stop_looping = 1;
} else if (*mov_url) {
char* methode;
if (!get_test_request)
methode=BACK_ADD_TEST; // tester avec HEAD
else {
methode=BACK_ADD_TEST2; // tester avec GET
if ( opt->errlog!=NULL ) {
fspc(opt->errlog,"warning"); fprintf(opt->errlog,"Loop with HEAD request (during prefetch) at %s%s"LF,curr_adr,curr_fil);
test_flush;
}
}
// Ajouter
URLSAVENAME_WAIT_FOR_AVAILABLE_SOCKET();
if (back_add(back,back_max,opt,cache,mov_adr,mov_fil,methode,referer_adr,referer_fil,1,NULL)!=-1) { // OK
if ( (opt->debug>1) && (opt->errlog!=NULL) ) {
fspc(opt->errlog,"warning"); fprintf(opt->errlog,"(during prefetch) %s (%d) to link %s at %s%s"LF,back[b].r.msg,back[b].r.statuscode,back[b].r.location,curr_adr,curr_fil);
test_flush;
}
// libΘrer emplacement backing actuel et attendre le prochain
strcpybuff(back[b].r.contenttype,"text/html"); // message d'erreur en html
// Finalement on, renvoie un erreur, pour ne toucher α rien dans le code
// libΘrer emplacement backing
/*if (opt->errlog!=NULL) {
fspc(opt->errlog,0); fprintf(opt->errlog,"Error: (during prefetch) %s (%d) to link %s at %s%s"LF,back[b].r.msg,back[b].r.statuscode,back[b].r.location,curr_adr,curr_fil);
test_flush;
}
back_delete(opt,cache,back,b);
return -1; // ERREUR (404 par exemple)
*/
}
{ // pas d'erreur, changer type?
char s[16];
s[0]='\0';
if (strnotempty(back[b].r.cdispo)) { /* filename given */
ext_chg=2; /* change filename */
strcpybuff(ext,back[b].r.cdispo);
}
else if (!may_unknown(back[b].r.contenttype) || ishtest == -2 ) { // on peut patcher α priori? (pas interdit ou pas de type)